היי חברה יש מספר שדות שאני צריך לבצע חיפוש אשמח לעזרה
טבלאה ראשית מחזיקה את כל העסקים שלי business
טבלאה של ערים Areas מחזיקה את כל הערים בארץ
טבלה שמקשרת בין 2 הטבלאות bus_Areas בעמצעות id

חפרתי את כל האינטרנט ועדיין לא מצאת הסבר איך אני מבצעה חיפוש בטבלאות
עשיתי משהו כזה וזה עדיין לא עובד

$where = array();

if (isset($keyword))
{  
    $searchword = mysql_real_escape_string($keyword);
    $where[] =  "SELECT * FROM wp_ubusiness WHERE ub_name LIKE'%".$searchword."%' OR ub_desc LIKE'%".$searchword."%'" ;
}

if(isset($area))
{
   
    $where[] =  "wp_ubarea.bu_Areaid = $area";

}

if(isset($section))
{
    $Section = mysql_real_escape_string($section);
    $where[] =  "surnameField LIKE '%".$surname."%'";

}

if(count($where))
{
   $query = "SELECT * FROM wp_ubusiness
             LEFT JOIN business_areas ON wp_ubusiness.ub_id = business_areas.bus_id
             LEFT JOIN wp_ubarea ON wp_ubarea.bu_Areaid = business_areas.areas_id
             LEFT JOIN business_sections ON business_sections.cbus_id = wp_ubusiness.ub_id
      LEFT JOIN wp_ubsection ON wp_ubsection.ubsection_id = business_sections.section_id
         WHERE "
.implode(" AND ",$where);
}
 else
  {
     $query = "SELECT * FROM wp_ubusiness
             // LEFT JOIN business_areas ON wp_ubusiness.ub_id = business_areas.bus_id
             // LEFT JOIN wp_ubarea ON wp_ubarea.bu_Areaid = business_areas.areas_id
             // LEFT JOIN business_sections ON business_sections.cbus_id = wp_ubusiness.ub_id
      // LEFT JOIN wp_ubsection ON wp_ubsection.ubsection_id = business_sections.section_id"
;
  }
 

    $result = $wpdb->get_results($query); // or die(mysql_error());

1 תשובות

avatar ענה Splash ב 01 לספטמבר 2014 #

תנסח את השאלה שלך מחדש משום שלא ניתן להבין יותר מידי מההסבר שלך.
בעקרון חיפוש בטבלאות נעשה ע"י השימוש ב where ,הסבר קצת יותר מפורט אתה יכול למצוא כאן - http://www.w3schools.com/sql/sql_where.asp

בנוסף כדאי לציין שמאוד לא מומלץ לעשות כל כך הרבה join באותה שאילתה,מדובר בפעולה מאוד בזבזנית וכאשר מדובר בשימוש עם מספר טבלאות פי כמה וכמה.
לכן אני מציע לך לחשוב שוב על המבנה של המסד,האם ניתן לבנות אותו בצורה יותר יעילה כך שתחסוך חישובים מיותרים ?
במידה ולא,אני מציע לך לפחות לבצע מטמון על המידע על מנת למנוע עומס על המסד.